//class Solution {
//public:
//    ListNode* trainningPlan(ListNode* l1, ListNode* l2) {
//        if (l1 == nullptr) return l2;
//        if (l2 == nullptr) return l1;
//        ListNode* newhead = new ListNode(0);
//        ListNode* tail = newhead;
//        ListNode* cur1 = l1;
//        ListNode* cur2 = l2;
//        while (cur1 && cur2)
//        {
//            if (cur1->val < cur2->val)
//            {
//                tail->next = cur1;
//                tail = tail->next;
//                cur1 = cur1->next;
//            }
//            else
//            {
//                tail->next = cur2;
//                tail = tail->next;
//                cur2 = cur2->next;
//            }
//        }
//        while (cur1)
//        {
//            tail->next = cur1;
//            tail = tail->next;
//            cur1 = cur1->next;
//        }
//        while (cur2)
//        {
//            tail->next = cur2;
//            tail = tail->next;
//            cur2 = cur2->next;
//        }
//        tail->next = nullptr;
//        return newhead->next;
//    }
//};

//
//class Solution {
//public:
//    vector<int> nextLargerNodes(ListNode* head) {
//        vector<int> v;
//        ListNode* cur = head;
//        while (cur)
//        {
//            v.push_back(cur->val);
//            cur = cur->next;
//        }
//        vector<int> ret;
//        int i = 0;
//        while (i < v.size())
//        {
//            int j = i + 1;
//            int tmp = 0;
//            while (j < v.size())
//            {
//                if (v[j] > v[i])
//                {
//                    tmp = v[j];
//                    break;
//                }
//                j++;
//            }
//            ret.push_back(tmp);
//            i++;
//        }
//        return ret;
//    }
//};

